// 引入其他的ts文件
// 浏览器不支持
// import { ming } from './mingningkongjian'
// 或者以下写法
// 如果一个命名空间在一个单独的 TypeScript 文件中,则应使用三斜杠 /// 引用它,语法格式如下
// /// <reference path = "./mingningkongjian.ts" />
// let mingP = new ming.Person('11')
// mingP.run()
let str: string = 'hello ts1'
let boo: boolean = true
let num: number = 113
let any: any = 113
// 数组1
let arr1: number[] = [1, 2, 3]
let arr2: string[] = ['1', '2', '3']
// 数组2
let arr3: Array<number> = [88]
// 元组类型 tuple
let arr4: [string, number, boolean] = ['1', 2, true]
let arr5: any[] = ['1', 2, true]
console.log(arr1, arr2, arr3)
console.log(arr4)
console.log(arr5)
// 枚举
enum Flag {
success = 1,
error = -1,
'枚举' = 2,
other,
}
let f: Flag = Flag.success
console.log(f)
console.log(Flag.error)
console.log(Flag['枚举'])
// 不赋值,索引值
console.log(Flag.other)
// 对象
let obj: Object = { a: '11' }
console.log(obj)
// 函数不返回类型
function run(): void {
console.log('run1')
}
run()
function run1(): number {
console.log('run2')
return 1
}
run1()
// ? 可选参数
// = 默认参数
let fun = function (name: string, age?: number, sex: string = '男'): number {
console.log('fun', `${name}----${age}----${sex}`)
return 1
}
fun('aaa', 18, 'gril')
fun('bbb')
// ...剩余参数
function sum(a: number, ...result: number[]): number {
let n = a
result.forEach((item) => {
n += item
})
console.log(n)
return n
}
sum(1, 2, 3, 4, 5, 6, 7, 8)
// 重载
function getInfo(name: string): string
function getInfo(age: number): number
function getInfo(str: any): any {
if (typeof str === 'string') {
console.log(`stringstringstringstring${str}`)
} else {
console.log(`numbernumbernumbernumber${str}`)
}
}
getInfo('aasdvd')
getInfo(2434534554)
// 其他类型
var a: never
a = (() => {
throw new Error('11')
})()