Files
Notebook-StarNet/aboutTS.md
T

1.2 KiB

以下是关于 ts(以及任何关于 ts 的不限于语法,技巧之类的学习心得)

any unknown void never

  • any 表示任意类型。这导致不会对类型进行任何检查,用太多不太好就是了。
  • unknown 表示位置类型。看作any的安全版本。可以赋值为任何类型,但在使用之前必须进行类型检查或类型断言。
  • void 代表没有返回值。
  • never 代表永远不会有任何返回值,如死循环或抛出异常。

接口 interface

  • 基本可以认为是声明object类型用的东西

泛型

  • 实际上可以理解为是一种类型的变量
  • 如:
    function identity<T>(arg: T): T {
        return arg
    }
    
    // 使用泛型函数
    let result = identity<string>('Hello')
    console.log(result) // 输出: Hello
    
    let numberResult = identity<number>(42)
    console.log(numberResult) // 输出: 42
    
    // 基本语法
    interface Pair<T, U> {
        first: T
        second: U
    }
    
    // 使用泛型接口
    let pair: Pair<string, number> = { first: 'hello', second: 42 }
    console.log(pair) // 输出: { first: 'hello', second: 42 }