錯誤之處,歡迎指正。
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
};
// 使用在函數(shù)參數(shù)中
interface obj {
name: string,
age: number
} ;
function foo({name, age}: obj) {};
foo({
name: "chris",
age: 17
});
// 對函數(shù)進行約束
interface foo {
(num: number): number
};
let myFoo: foo = (a) => { return a + "" }; // Error
myFoo(1);
-
void
表示函數(shù)的返回值為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");