gpt4 book ai didi

javascript - 导出单个或多个类型

转载 作者:行者123 更新时间:2023-12-03 06:58:47 26 4
gpt4 key购买 nike

我正在第一次尝试 TypeScript(以及为此而设计的模块)。我了解模块背后的原理,但每当我尝试导出 type 时,我似乎遇到了问题。

例如,给出以下内容:

export type typeOne = "A" | "B" | "C" | "D";

编译时基本上给了我空输出,在生成的文件中只剩下一个我不理解的“use strict”

我最初开始尝试做的是在 Constants 对象中导出多个 enum 类型:

export Constants {
type typeOne = "A" | "B" | "C" | "D";
type typeTwo = "X" | "Y" | "Z";
}

但似乎我什至无法让基本案例发挥作用。我是否遗漏了一些非常明显的东西,或者我是否遇到了 TypeScript 中的某种限制?

最佳答案

由于 javascript 不是类型化语言,因此所有声明的类型都会在编译过程中被删除。

您定义的类型只是字符串,编译器将根据特定的值集检查它们。

这三个函数:

function fn1(value: "A" | "B" | "C"): boolean {
return value === "A" || value === "B" || value === "C";
}

function fn2(value: string): boolean {
return value === "A" || value === "B" || value === "C";
}

function fn3(value): boolean {
return value === "A" || value === "B" || value === "C";
}

将被编译为相同的js函数:

function fnN(value) {
return value === "A" || value === "B" || value === "C";
}

区别在于编译时间(以及在任何普通 IDE 中):

fn1("no good");

将导致编译错误,因为传递的字符串不是我们定义的 3 个特定值,但 fn2fn3 可以使用该值。

关于javascript - 导出单个或多个类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37149731/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com