首页 > 解决方案 > TypeScript 中的“:”是什么意思?

问题描述

我知道打字稿/javascript,但有使用 python/java/c++ 的经验。这是否像新版本 Python 中的类型提示?“:”是否总是意味着类型提示或者它也可以意味着其他东西?

标签: typescripttypes

解决方案


TypeScript 是 ECMAScript 的超集,所以首先,冒号:在 ECMAScript 中具有相同的含义:

  • 它是条件运算符 condition ? consequence1 : consequence2的语法的一部分,它condition根据其真实性计算一个consequence1consequence2(但从不计算两者),整个表达式的值是被评估的结果的值。
  • 它是对象字面量语法的一部分:
    const obj = {
        foo: 4,
        "bar": 8,
        ["ba" + "z"]: 15,
    }
    
    console.log(obj);
  • 它是一个赋值属性,是解构赋值语法的一部分:
    const obj = {
        foo: 16,
        bar: 23,
        baz: 42,
    }
    
    const { foo: frotz, baz: quux } = obj;
    
    console.log(frotz, quux);
  • 它是label语法的一部分:
    someLabel:
    for (let i = 0; i < 2; i++) {
        for (let j = 100; j < 102; j++) {
            console.log({ i, j });
            continue someLabel;
        }
    }

但它在 TypeScript 中也有其他含义,用于类型注释

const i: number = 4711;
const s: string = "Hello";

function f(a: number, b: string): never

请注意,这些不是“类型提示”。它们是类型注释。他们没有暗示任何事情,他们被严格执行。


推荐阅读