Typescript 淘汰es5打字

Typescript 淘汰es5打字,typescript,knockout.js,typescript-typings,definitelytyped,knockout-es5-plugin,Typescript,Knockout.js,Typescript Typings,Definitelytyped,Knockout Es5 Plugin,我正在尝试更新我的敲除类型,因为最新版本的typescript正在检测旧类型的问题 问题在于如何让击倒和击倒一起工作 我正在使用VS2017和tsconfig文件 我安装敲除式打字,如下所示: typings install dt~knockout typings install dt~knockout-es5 --global 然后我安装敲除式es5打字,如下所示: typings install dt~knockout typings install dt~knockout-es5 -

我正在尝试更新我的敲除类型,因为最新版本的typescript正在检测旧类型的问题

问题在于如何让击倒和击倒一起工作

我正在使用VS2017和tsconfig文件

我安装敲除式打字,如下所示:

typings install dt~knockout
typings install dt~knockout-es5 --global
然后我安装敲除式es5打字,如下所示:

typings install dt~knockout
typings install dt~knockout-es5 --global
在我安装knockout es5 typings之后,它们有编译错误,因为没有这样的类型
KnockoutObservable

因此,我将此添加到淘汰es5打字的顶部:

/// <reference path="../../modules/knockout/index.d.ts" />
import * as ko from "knockout";
这导致编译错误,因为ko的类型上不存在
track

这是因为ko是从
knockout
模块导入的,该模块是从
knockout
打字导出的,然而
track
是一种由
knockout-es5
打字添加的方法,但不是。如何进一步修改淘汰es5打字文件以使其生效

更新:我已尝试将其添加到knockout.es5/index.d.ts文件的底部:

declare var ko: KnockoutStatic;

declare module "knockout-es5" {
    export = ko;
}
在我的typescript文件中,我正在尝试:

import * as ko from "knockout-es5"
但是import语句不会编译:它说
找不到模块knockout-es5

我也试过:

import * as ko from "../typings/globals/knockout.es5/index"
这似乎是可行的,但随后我必须更改代码来执行此操作,这对我来说似乎是错误的(请注意附加的
.ko

class Application {
    Id: number
    Name: string
    constructor(id: number, name: string) {
        this.Id = id;
        this.Name = name;

        ko.ko.track(this);
    }
}

而且一旦我这样做了,我就不能再解析原始的
ko
类型,比如
ko.observatable

我想你要找的是什么

import ko from 'knockout'
ko是默认对象,将单独导入

使用这种方式时,您将导入所有对象,而不仅仅是ko

import * as ko from "knockout-es5"
如果你想用这种方法,你可能是想用这种方法把ko从整个对象中拉出来

import { ko } from "knockout-es5"

你试过了吗?是的。我已经用那次尝试的结果更新了我的问题。