// 普通數(shù)據(jù)類型
const num: number = undefined
// 函數(shù)的默認(rèn)參數(shù)和可選參數(shù)
function f1(arg1: string = 'cat', arg2?: boolean): any {
return `${arg1}+${arg2}`
}
console.log(f1())
// null undefined 和void的區(qū)別 null 和undefined是所有類型的子類型 void不是 可以理解就是undefined
let a: void;
let b: number = undefined
// 任意值
let c: any = 'hello word'
// 聯(lián)合類型
let d: string | number | any = 3
d = true
// 函數(shù)中的參數(shù)如果是聯(lián)合類型,函數(shù)中的方法要聯(lián)合類型公用的方法 要不會報錯
//--------------------------------------------
// 對象的類型使用接口 interfaces
// 必須得一直(順序不一定一致)
// 注意interface 中是;(分號)
// 注意一但使用propName 定義了類型
//那么本定義的對象和他的實際對象類型都得是這個類型,要不然會報錯
interface Person {
name: string;
[propName: string]: any;
age?: number;
}
let tom: Person = {
name: 'Tom',
age: 1,
gender: 'male'
};
// 比如這種 兩種都會報錯 所以使用propName的時候定義為any類型
// interface Son{
// name:string;
// [propName:string]:string;
// a?:number;
// }
// let father:Son={
// name:'1',
// age:40,
// }
// 對象中的只讀 定義再key前面 屬性值不可以修改
interface Read {
readonly name: string;
}
let R: Read = {
name: 'name'
}
// 這里修改 name 會報錯
// R.name = '333'
//---------------------------------------
//數(shù)組的類型
//(數(shù)組中的類型必須得都是前面定義的否則會報錯)
let arr: number[] = [1, 24, 2]
// 比如這樣的會報錯
// let arr1:string[] = [1,'3']
// 使用數(shù)組泛型定義數(shù)組
let arr3: Array<number> = [1, 2]
// 使用接口定義數(shù)組
interface Arr {
[index: number]: number;
}
let Arr4: Arr = [1, 23]
// 對于類數(shù)組 使用TS的內(nèi)置對象IArguments TS 有內(nèi)置類型
function sum(): any {
let argus: IArguments = arguments;
}
//一般常見的數(shù)組定義就是使用any 任何類型
let arr4: any[] = [{ a: 1 }, '2']
//----------------------------------------
// 定義函數(shù)
// 常規(guī)的寫法
// 參數(shù)和類型都會受限制 否則會報錯
// 同時?代表可選
function fun(a: string, b?: number): any {
}
// 使用接口定義
interface Fu {
(a: number, b: number): number
}
let f3: Fu = function (a: number, b: number): number {
return a + b;
}
// 函數(shù)表達式的話
let f: (a: number, b: number) => number = function (a: number, b: number): number {
return a + b;
}
// 剩余參數(shù)也一樣 (reset要定義為數(shù)組)
function S(a: number[], ...rest: number[]): any {
}
// --------------------------------------------以上是基本數(shù)據(jù)類型
// 類型斷言
// 在函數(shù)中判斷函數(shù)參數(shù)的類型 能夠直觀的判斷數(shù)據(jù)類型
function fs(a: number | string): any {
if (<number>a) {
return a;
} else {
return 'aa';
}
}
console.log(fs('a'))
// 定義全局 declare let a:string = 'a' declare宣布的意思
//泛型 定義數(shù)據(jù)的時候不聲明類型 再調(diào)用的時候聲明
TS筆記
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。