TypeScript等值和相等类型不起作用

时间:2015-07-14 18:40:30

标签: angularjs typescript

我刚开始使用TypeScript。我在我的新AngularJS项目中使用TypeScript。 我遇到的问题是,类型号中的id实际上是一种字符串。 我错过了一个案子吗?

非常感谢我们的帮助,谢谢Stefan

interface IRouteParams extends ng.route.IRouteParamsService {
    id: number;
}

class FooController {
    constructor(private $routerParams: IRouteParams, private fooService: IFooService) {
        fooService.getById($routerParams.id);
    }
}

export interface IFooService {  
    getById(id: number): ng.IPromise<number>;
}

class FooService implements IFooService {

    getById(id: number): angular.IPromise<number> {
        const defer = this.$q.defer<IRace>();

        if (id === -1) {
           // not working           
        }

        return defer.promise;
    }
}

1 个答案:

答案 0 :(得分:1)

路由参数始终是字符串(因为它们来自URL)。在TypeScript中编写id: number不会改变它。在定义路由参数时,您应该写id: string