相关疑难解决方法(0)

覆盖Typescript d.ts文件中定义的覆盖接口属性类型

有没有办法更改*.d.tsintype中定义的接口属性的类型?

例如:接口in x.d.ts定义为

interface A {
  property: number;
}
Run Code Online (Sandbox Code Playgroud)

我想在我写的typescript文件中更改它

interface A {
  property: Object;
}
Run Code Online (Sandbox Code Playgroud)

甚至这会起作用

interface B extends A {
  property: Object;
}
Run Code Online (Sandbox Code Playgroud)

这种方法会起作用吗?当我尝试使用我的系统时,它无法正常工作.只是想确认它是否可能?

javascript typescript typescript-typings

60
推荐指数
14
解决办法
6万
查看次数

TypeScript条件类型 - 过滤掉只读属性/仅选择必需的属性

在TypeScript中使用新的条件类型(或者可能是另一种技术),有没有办法根据修饰符从界面中选择某些属性?例如,有......

interface I1 {
    readonly n: number
    s: string
}
Run Code Online (Sandbox Code Playgroud)

我想创建一个基于前一个类型的新类型,如下所示:

interface I2 {
    s: string
}
Run Code Online (Sandbox Code Playgroud)

typescript conditional-types typescript2.8

10
推荐指数
1
解决办法
2034
查看次数

空对象的条件类型

是否有可能有一个条件类型可以测试可以为空的对象?

例如:

   function test<T>(a: T): T extends {} ? string : never {
        return null
      }
   let o1: {}
   let o2: { fox? }
   let o3: { fox }
   test(o1)
   test(o2)
   test(o3) // this one should be 'never'
Run Code Online (Sandbox Code Playgroud)

由于条件类型测试也适用于继承,因此所有 3 种情况都会产生“字符串”,但如果至少需要该类型的一个属性(例如非空对象类型o3) ,我想产生“从不”

更新

当我写这个问题时,我试图找出我遇到的问题的原因。我认为我应该解决我的疑问而不是我的问题,并简化我的问题。然而答案偏离了我的问题。

基本上我试图构建一个函数,其中第一个参数是一个对象,如果第一个参数可以完全部分(用 {} 初始化),则第二个参数是可选的

 function test<T extends {}>(a: T, ...x: T extends {} ? [never?] : [any])
 function test(a, b) {
   return null
 }

let o1: {}
let o2: { fox? }
let o3: { …
Run Code Online (Sandbox Code Playgroud)

typescript

3
推荐指数
1
解决办法
1693
查看次数