typescript相关内容
每当我在元组上使用array.map时,类型脚本都会将其推断为泛型数组。例如,以下是一个简单的3x3数独游戏的一些片段: const _ = ' ' // a "Blank" type Blank = typeof _ type Cell = number | Blank type Three = [Cell, Cell, Cell] type Board = [Three, Thr
..
问题 我喜欢使用TypeScrip的主要原因之一是检查我是否将正确键入的参数传递给给定的函数调用。 但是,在使用Next.js时,我遇到了这样一个问题,传递给Next.js API终结点的参数在将";降级为NextApiRequest类型时最终会丢失其类型。 通常,我会执行类似req.body.[param_name]操作的参数,但整个链都有类型any,因此我会丢失任何有
..
我正在使用@material-ui/core在我的Reaction应用程序中处理主题,但由于某些原因,某些样式未被应用。 这是我的sandboxWill的完整代码(下面是相关代码片段)。 我按照物料界面文档中的example操作,但似乎不起作用。 有趣的是,文本确实居中对齐(这是我在样式中指定的),但背景颜色保持默认的#fafafa,而不是我的主题中指定的#424242。所以我猜
..
我的Reaction组件使用I18Next中的翻译,我正在尝试使用JEST为其创建测试。但是,没有任何内容被翻译,我尝试了模拟下面的useTranslating函数: const useMock : any = [(k: any) => k, {}]; useMock.t = (k: any) => k; useMock.i18n = {}; jest.mock('react-i18nex
..
TypeScrip 3.0中有一个名为Project References的新功能。这表明*.ts模块之间有更好的交互。不幸的是,这就是我能从官方文档😞中得到的全部信息,尽管它似乎写得相当清楚和直接。 谁能帮助我准确地理解,它解决了什么问题,它如何做到这一点,我将如何从中受益?我有一个类似的结构的项目,所以它可能(也可能不)是非常有帮助的。提前感谢您! 更新:项目结构大致为:
..
他们是否向TyPepad 1.0添加了运行时列表和/或地图类型类?如果没有,有没有人编写的可靠的库来提供这种功能? 在List<;>的情况下,是否存在一个链表,其中列表中的元素具有Next/Prev属性?我们需要一个列表,在该列表中,我们可以从Element对象(即不是来自迭代器)获得列表中的下一个和前一个元素(如果是第一个/最后一个元素,则为空)。 推荐答案 他们是否向Ty
..
我希望test文件夹与src文件夹相邻时,我的打字脚本测试能够接收linting、代码完成、vscode IntelliSense(ts语言功能)。我不希望在生成TypeScrip项目时转换测试。 我的打字脚本节点项目的结构如下: . ├── server │ │ │ │ │ ├── src │ │ │ │ │ └── app.ts │
..
我开始在我用Visual Studio代码处理的Node项目中使用TypeScrip。我想遵循类似于Flow的“选择加入”策略。因此,我将// @ts-check放在.js文件的顶部,希望为该文件启用TS。最终,我想要与Flow一样的“linting”体验,因此我安装了插件TSLint,这样我就可以看到IntelliSense警告/错误。 但我的文件如下所示: // @ts-check
..
有没有办法获取TypeScrip接口或对象的所有必需属性。 类似Object.getOwnPropertyDescriptors(myObject)或keyof T但带有信息属性的内容是必需的/可选的 推荐答案 在运行时这是不可能的,因为属性的必需性/可选性只存在于类型脚本类型系统中,在代码实际运行时它已经erased。您可以通过decorators等添加您自己的运行时信息,但为此您需
..
请考虑以下伪代码,这些伪代码试图定义具有函数类型参数的高阶类型函数M: type HigherOrderTypeFn> = T extends (...) ? M : never; M是语法错误的打字脚本,但将类型签名声明为HigherOrderTypeFn会在第二行产生错误Type 'M' is not generic. ts(23
..
假设我有一个方法将其功能委托给外部库中的某个方法,并且我有该外部方法的类型,例如LibDoStuffMethodType。 class MyApp { doStuff(args) { // delegate to external library's lib.doStuff } } 现在,我如何为我的方法MyApp.doStuff()指定类型?当然,我可以将doStuf
..
我很难找到这个问题的答案。对于普通的Node.js,您可以使用node path/to/file.js运行任何js文件,使用CoffeeScrip可以运行coffee hello.coffee,而ES6具有babel-node hello.js。如何对TypeScrip执行相同的操作? 我的项目有一个tsconfig.json,webpack/ts-Loader使用它为浏览器构建了一个很好的
..
所以我正在浏览有关TypeScrip的文档,但我无法理解这个概念。 因此文档说明:- 在分配条件类型的实例化中,T扩展U?X:Y,则条件类型中对T的引用被解析为联合类型的单个组件(即,T指的是条件类型分布在联合类型上之后的单个组件)。此外,X内对T的引用具有附加的类型参数约束U(即,T被认为是可赋给X内的U的)。 我无法理解该部分T refers to the individual
..
为什么我会收到这样的错误以及更多这样的错误?我正在添加一个链接到repo以及下面的关键代码片段。我想我对依赖关系和“包含”链接的工作原理有一个基本的误解。 csvproc(master)> tsc node_modules/typescript/bin/lib.core.d.ts(83,5): error TS2300: Duplicate identifier 'configurable'
..
以下代码可用于创建enumIn TypeScrip: enum e { hello = 1, world = 2 }; 这些值可以通过以下方式访问: e.hello; e.world; 如何使用字符串值创建enum? enum e { hello = "hello", // error: cannot convert string to e
..
在TypeScrip(或者可能是其他技术)中使用新的条件类型,有没有一种方法可以根据它们的修饰符从接口中只挑选某些属性?例如,拥有... interface I1 { readonly n: number s: string } 我想在前一个类型的基础上创建一个新类型,如下所示: interface I2 { s: string } 推荐答案 更新
..
首先,让我明确一下,我要查看的不是联合类型,而是直接连接类型,即"Hel" + "lo" = "Hello",而是字符串文字类型 基本上,我有一个函数,它接受两个字符串文字,一个namespace和一个name,并将它们与中间的/组合起来作为输出,但我想不出一种方法来使输出成为字符串文字而不是泛型字符串。 我需要它是字符串文字,因为输出将用作对象的键。 我尝试过类型交集(&)、+
..
例如,我有一个类型: type abc = 'a' | 'b' | 'c'; 如何在编译时创建包含联合的所有元素的元组类型? type t = ['a','b', 'c']; 推荐答案 很容易从元组类型转换为联合类型;例如,请参见this question。但反过来,从联合转换为元组是您不应该尝试的真正糟糕的想法之一。(参见microsoft/TypeScript#132
..
我使用的是Chrome70,Chrome确实添加了方法.flatMap、.flatten、.flat。因此,我的代码确实可以按预期运行。遗憾的是,TypeScrip不喜欢它。 // data.flatMap lint error export const transformData = (data: any[]) => data.flatMap(abc => [ parentObj(a
..
所以我正在尝试找出最有效的方法来拆分重叠的间隔,然后合并重复项。特定于我的情况的两个条件是,如果合并间隔的开始是原始间隔的结束,则加1。如果合并间隔的结束是原始间隔的开始,则减1。以下是一些样本数据和预期结果: interface Interval { start: number; end: number; type: Array; } // sta
..