ไปๅคฉๅจๅฏซ anguar ็ๆๅๆณๅฐไธๅๅ้ก,ไธ่ฌๆๅๅจ parameter ๅพ้ขๅธถ็ๆๆฏๅๅฅ,ๅๆฏ:
const tester = (params: { name: string }): void => {
console.log(params.name);
}
tester({name: 'a'}); // a
้ฃๆฏๅฆๅฏไปฅ็ดๆฅ้ๅฎๆณ่ฆ็ๅ งๅฎน,็ญๆกๆฏๅฏไปฅ็:
const tester = (params: { name: 'a' | 'b' }): void => {
console.log(params.name);
}
tester({name: 'a'}); // a
ๆญคๆๅฆๆไฝ ไธ tester({name: 'c'}); ๆๅพๅฐ TS2322: Type '"c"' is not assignable to type '"a" | "b"'. ็่ญฆๅ,ไธ้ๅคๅฏซไบๅนพๅๆกไพไปฅๅพ็ผ็พไธๅ้ท,ไธ่ฝ็จ่ฎๆธๅธถๅ
ฅ:
const tester = (params: { name: 'a' | 'b' }): void => {
console.log(params.name);
}
const params = {
name: 'a'
};
tester(params); // a
ไธๆน็ๅฏซๆณๆๅพๅฐ่ญฆๅ TS2345: Argument of type '{ name: string; }' is not assignable to parameter of type '{ name: "a" | "b"; }'. Types of property 'name' are incompatible. Type 'string' is not assignable to type '"a" | "b"'.,ๆ็ฐกๅฎ็่งฃๆณๆฏ:
const tester = (params: { name: 'a' | 'b' }): void => {
console.log(params.name);
}
const params = {
name: 'a' as const
};
tester(params); // a
ไธ้ไธ็คพ็พค่จ่ซๅพ,ๆๅฅฝ็่งฃๆณๆ่ฉฒๆฏ็จ enum:
enum TesterParam {
A = 'a',
B = 'b'
}
const tester = (params: { name: TesterParam }): void => {
console.log(params.name);
}
const params = {
name: TesterParam.A
};
tester(params); // a
้ๆจฃ็ๆถๆงๅฐ็ถญ่ญทไพ่ชชๆฏๆๅฅฝ็。