当前位置: 首页 > 知识库问答 >
问题:

打字稿

易宣
2023-03-14

我正在努力寻找

js prettyprint-override">type IRecord<T> = T & TypedMap<T>;

那个操作符是做什么的,它与union类型< code>|有什么不同?

共有2个答案

韩博厚
2023-03-14

值得注意的是,如果您更喜欢使用接口而不是类型(尽管它们在很大程度上相似),您通常可以使用接口扩展而不是像这样的类型交集:

// base type
interface Shape {
  color: string;
}

// extension
interface Square extends Shape {
  sideLength: number;
}

// intersection
type Square = Shape & {
  sideLength: number;
}

请参见:在TypeScript中扩展和交叉接口的区别?

漆雕稳
2023-03-14

这看起来像是来自语言规范的交集类型部分。具体来说,

交集类型表示同时具有多种类型的值。交集类型A的值

该规范继续提供了一个有助于更好地理解该行为的片段:

interface A { a: number }  
interface B { b: number }

var ab: A & B = { a: 1, b: 1 };  
var a: A = ab;  // A & B assignable to A  
var b: B = ab;  // A & B assignable to B

因为ab既是A类型又是B类型,所以我们可以将其分配给a和/或b。如果ab只是B类型,我们只能将其分配给b

您共享的代码可能来自 GitHub 上的此评论,其中提到了交叉类型。

 类似资料:
  • 问题内容: 我希望能够实例化一个Typescript类,在运行时可以获取该类和构造函数的详细信息。我想编写的函数将包含类名和构造函数参数。 问题答案: 您可以尝试: 编辑 此版本可在TypeScript操场上使用,例如:

  • 学会盲打。这是一个进阶技能,因为写代码是如此困难以至于你的打字速度是不太相关的,并且不能削减写代码花费的时间,不管你打字有多好。但是,到了你是一个进阶程序员的时候,你可能花费很多时间在用自然语言给你的同事或他人写东西上。这是对你的责任感是一种有趣的测试,学习这样的东西需要专注的时间,但不怎么有趣。有这样一个传说,当 Michael Tiemann 在 MCC 的时候,人们会站在他的门外面倾听他击键

  • 问题内容: 我们需要从Typescript中的node.js代码中调用REST API,并希望具有用于请求和响应的相应类型。不幸的是,给定接口的JSON包含以下字段: 我们被告知,这是由于另一端的自动化“ JSONifier”的局限性而无法更改的。我们如何设置适合于此的接口?以下显然不起作用: 问题答案: 就像JS对象一样,您可以用引号将名称引起来,如下所示:

  • 问题内容: 我在这里找到了解决方案:Webpack和Typescript图像导入 但我为此得到错误: 我想我需要以某种方式强制导入,但无法弄清楚如何。我在React中做到这一点。我看到该属性定义为,这就是为什么会弹出错误。 这是代码: HTML: 并基于上述解决方案进行定义: tsconfig: 问题答案: 摆脱该错误的一种方法是通过按如下方式修改d.ts文件: 去掉 或者您可以执行以下操作: 更

  • 问题内容: 在我的react和typescript应用程序中,我使用:。 我如何正确定义类的类型,这样我就不必用来绕过类型系统了? 如果我把我得到: 问题答案: 通常,事件处理程序应使用,例如: 您可以在这里阅读原因(还原“使SyntheticEvent.target通用,而不是SyntheticEvent.currentTarget。”)。 UPD:如@ roger-gusmao所述,它更适合于

  • 问题内容: 尝试在Typescript中实现Mongoose模型。对Google的调查只揭示了一种混合方法(结合JS和TS)。在没有JS的情况下,如何以我比较幼稚的方式实现User类呢? 希望能够不带行李的IUserModel。 问题答案: 这是我的方法: