小编sty*_*iss的帖子

Typescript:以目标字符串开头时排除属性键

我想当属性键以目标字符串开头时,应从原始类型中过滤新的对象类型。

产地类型:

type Origin = {
    a: string,
    b: string,
    _c: string,
    _d: string,
}
Run Code Online (Sandbox Code Playgroud)

我想要的结果类型:

// type Result = SomethingWork<Origin, '_'>;
type Result = {
    a: string,
    b: string
};
Run Code Online (Sandbox Code Playgroud)

Origin 类型具有动态属性键。所以如果直接使用类型,这是不正确的'_c' | '_d'

typescript

9
推荐指数
3
解决办法
3821
查看次数

具有通用类型的 Typescript 装饰器

以下代码不起作用:

function deco<T>(){
    return function(target, key){
        // before
        // target[key] = new Decorated<T>();
        // edited
        Object.defineProperty(target, key, {
            get(){
             return new Decorated<T>();
            }
        });
    }
}

class Decorated<T> {
    set(values: T){
    }
}

class MyDecos {
    @deco<{a: number}>() a;
    @deco<{b: string}>() b;
}

const test = new MyDecos;
test.a.set(); // want to throw error
test.a.set({a: '1'); // want to throw error
test.b.set({b: 1); // want to throw error
Run Code Online (Sandbox Code Playgroud)

通用有什么问题吗?显示助手values: any

我想要Test.set使​​用装饰器中的泛型的方法

typescript typescript-generics

8
推荐指数
1
解决办法
5954
查看次数

Angular HttpClient 返回类型

  • HttpClient.get<Response>() 返回Observable<HttpEvent<Response>>,对吗?

  • HttpClient.get<Response>().subscribe 返回HttpEvent<Response>,对吗?

  • Response是一个数组。但我不能使用array.prototype方法

如果我上面的陈述是正确的,我应该使用any类型断言来修复错误吗?或使用 re-type cast insubscribe来使用泛型?

添加和编辑:

export class Test {
    constructor(public httpClient: HttpClient) {
    }

    get<T>(path: string, option?): Observable<T> {
        // Observable<HttpEvent<T>> is not assignable to type Observable<T>
        return this.httpClient.get<T>(path, option);
    }
}
Run Code Online (Sandbox Code Playgroud)

typescript angular

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

标签 统计

typescript ×3

angular ×1

typescript-generics ×1