错误之处,欢迎指正。
1. 类型约束
-
number
、string
、boolean
let num: number = 1;
let str: string = "123";
let bol: boolean = true;
num = str; // Error
let id: any = "123";
id = 1;
id = true;
console.log(id); // true
Array
const arr: Array<number> = [
1, 2, 3
];
const arr2: Array<string> = [
1
]; // Error
type
type a = 1;
const num: a = 1;
const num1: a = 2; // Error
const num2: a = "1"; // Error
interface
interface itemModel {
name: string,
age: number
};
const obj: itemModel = {
name: "chris",
age: 17
};
// 使用在函数参数中
interface obj {
name: string,
age: number
} ;
function foo({name, age}: obj) {};
foo({
name: "chris",
age: 17
});
// 对函数进行约束
interface foo {
(num: number): number
};
let myFoo: foo = (a) => { return a + "" }; // Error
myFoo(1);
-
void
表示函数的返回值为undefined
。
function foo(): void {
return true; // Error
};
2. 断言
as
const app: HTMLElement = document.getElementById("root"); // Error
const app: HTMLElement = document.getElementById("root") as HTMLElement;
const app: HTMLElement | null = document.getElementById("root");