最近 ts の学習を終えたばかりなので、簡単に要約すると、ts は型に重点が置かれ、より厳密です。
非プリミティブ型
1.オブジェクト(基本データ型を除く)、小文字
let obj:object = {a:1}
let obj:object = [1]
2. オブジェクト (基本データ型を含む)、大文字の O
let obj:Object = 1
let obj:Object = '123'
3. {} はオブジェクトと同等です
let obj:{}='123'
配列の種類: 配列には次の 3 種類があります。
//第一种
let arr:number[] = [1,2,3]
//第二种:泛型
let arr:Array<number> = [1, 2, 3]//整体是数组,并且里面的元素必须为number类型
//第三种:元组
let arr:[number, number, string] = [1, 2, '3']
ジョイント タイプ: | は「または」を意味します
//第一个例子
第一种写法
let numArr:number|string = 10//number的类型既可以为number类型,也可以为string类型
numArr = 1
numArr = '小花'
第二种写法
let numArr:1 | '2' = 1//表示numArr必须只能等于1和'2'
numArr = '2'
//第二个例子
let obj:{a:1,b:'2'}
obj = {a:1}
obj = {b:'2'}
obj = {a:1,b:'2'}//也就是说obj既可以等于a属性,也可以等于b属性,也可以有ab两个属性
交差タイプ: & は「および」を意味します
//必须全部满足的意思
let obj:{name:string, age:number}&{height:number}
obj = {'张三', 22, 180}
任意または不明
any: 型検出をバイパスします。簡単に言うと、any を使用することは JS 言語と何ら変わりません。
不明: すべての型を不明に割り当てることができ、不明が検証を実行します (バックグラウンドからデータを取得し、それがどのような型であるかわからない場合は、不明を使用します)
不明な型では固定メソッドを使用できません
インターフェースタイプ --interface
//interface用于自定义类型
//1.给对象用
interface MyItf{
name:string
age:number
height:number
}
let obj:MyItf;
obj = {
name:'小花',
age:20,
height:12
}
// 定义接口类型 --- 给数组用
interface MyArr{
[idx:number]:number|string
}
let obj1:MyArr;
obj1 = [1, 2, '小花']
// 定义函数类型 --- 给函数用
interface MyFun{
(p:number,n:string):void
}
let fun:MyFun = (p:number,n:string) => {}
fun(1,"")