2017-02-10 213 views
0

我想援引打字稿以下方法中的所有功能和接口:导入自定义类型

nlp.text("Hi Dr. Miller the price is 4.59 for the U.C.L.A. Ph.Ds.").sentences.length 
// 1 

什么会正确的import语句是让我从这个types definition做到这一点?

请注意,text()是此定义中函数和各种方法的名称。前者需要参数,而方法则不需要。我对这个功能很感兴趣。

我只是不确定哪个符号会给我在js文件here中定义的NLP函数。

回答

1
import * as nlp from 'library' 
// import { text } from 'library' - this would be much better 

const length = nlp.text("...").sentences.length 
// const length2 = text("...").sentences.length - using the second type of import 

很明显,您将不得不用'library'替换您导入的包的名称。

如果你想给导入的物体的类型,以及地方使用它,你可以做这样的事情(这是不是一个真正的好主意,虽然保持类型定义在2处):

interface Nlp { 
    text(string: string, options?: any): Text 
    sentence(string: string): Sentence 
    // ... 
} 

function iTakeAnNlp(input: Nlp): void { 
    // ... 
} 

iTakeAnNlp(nlp) 
+0

我该如何创建一个类型为'nlp'的类属性? –

+0

你为什么要这么做?为了完成你在问题中所描述的这个完美的作品。 –

+0

这是一个很好的问题。我想我已经习惯了创建这种属性的模式,然后在我班的方法中调用它们。例如'someMethod(){let foo = this.nlp.text('String')。sentences.length}' –