声明变量格式
ts的声明变量格式为: let 变量名: 数据类型 = 值;
let x: number | string = 10;
x = '100a';
let isLogin: boolean = true;
let text: string = 'hello world';
text = 'Hi';
//any: 任何数据类型
let data: any = 0;
data = 'hello';
// 定义number类型的数组
let count: number[] = [1, 2, 3];
let book: string[] = ['html', 'css', 'js'];
let product: any[] = ['葡萄', 20, true];
// 定义对象
// ? 可修饰对象的属性可有可无
// | 两个属性中的一个都可以
let person: { name: string, age: number | string, height?: string | number} = {
name: '小红',
age: 20
};
console.log('person ==>', person); //'person ==> {name: '小红', age: 20}'
// 访问person.name
let username: string = person.name;
console.log('username ==>', username); //'username ==> 小红'
person.height = '170cm';
// object:数组、对象、函数...
let fruit: object = {
name: '葡萄',
price: 4,
city: '陕西'
}
// 访问fruit.name
// let fruitName: string = (<any>fruit).name;
let fruitName: string = (fruit as any).name;
console.log('fruitName ==>', fruitName); //'fruitName ==> 葡萄'
// 修改fruit.price
(<any>fruit).price = 100;
// 添加新的属性
(<any>fruit).weight = '8kg';
console.log('fruit ==>', fruit); //'fruit ==> {name: '葡萄', price: 100, city: '陕西', weight: '8kg'}'
// 类型断言:<any>数据 或者 as any
// 遍历fruit对象
for (let key in fruit) {
let value: any = (<any>fruit)[key];
console.log('value ==>',value); //'value ==> 葡萄 value ==> 100 value ==> 陕西 value ==> 8kg'
}
// 复制fruit对象
let o: object = {};
for (let key in fruit) {
(<any>o)[key] = (<any>fruit)[key]
}
console.log('o ==>',o); //'o ==> {name: '葡萄', price: 100, city: '陕西', weight: '8kg'}'