我正在阅读我的打字稿应用程序中的JSON数据。我发现这个工具JSON2TS可以从JSON创建接口,因此打字稿可以知道json必须包含的内容。
我的json:
{
"questions": [
{
"text": "Is this a question?",
"answers": ["yes", "no", "maybe", "maybe not"],
"correct":1
}]
}
生成的接口:
declare module namespace {
export interface Question {
text: string;
answers: string[];
correct: number;
}
export interface RootObject {
questions: Question[];
}
}
这些接口需要保存在d.ts文件中并在代码中引用。我的问题:如何在用ajax加载后实际使用json数据?
答案 0 :(得分:1)
使用该定义文件,如果您的代码位于namespace
命名空间中,您可以这样做:
var questions = <RootObject>functionThatReturnsYourJSONData().questions;
如果您的代码不在namespace
命名空间中,则应该可以使用。
var questions = <namespace.RootObject>functionThatReturnsYourJSONData().questions;
在任何一种情况下,这都是强类型的:
if (questions.length > 0) {
console.log(questions[0].text);
}