我正在创建一些测试数据,并且不想经历手动写出我的类型化测试对象的麻烦 - 我宁愿提供JSON并将其转换为DefinitelyTyped对象 - 数组在我的情况下。我怎么能做到这一点?
我正在尝试执行以下操作,但它仍然以Object
:
const outputData = <fhir.BundleEntry[]>JSON.parse(`{"entry": [
{
"fullUrl": "https://vonk.furore.com/Patient/1",
"resource": {
"resourceType": "Patient",
"id": "1",
"meta": {
"versionId": "b345396d-f3b6-46ce-8ceb-0b5c0dafab2e",
"lastUpdated": "2017-06-20T07:28:54.979+00:00"
},
"identifier": [
{
"type": {
"coding": [
{
"system": "http://hl7.org/fhir/v2/0203",
"code": "SS"
}
]
},
"system": "https://github.com/projectcypress/cypress/patient",
"value": "577492"
}
],
"active": true,
"name": [
{
"use": "official",
"family": "Copeland",
"given": [
"Brian"
]
}
],
"gender": "male",
"birthDate": "1949-03-15",
"managingOrganization": {
"reference": "Organization/1"
}
},
"search": {
"mode": "match"
}
}
]}`);
答案 0 :(得分:2)
outputData
将在Typescript中输入fhir.BundleEntry[]
。在运行时它仍然是对象。在Typescript中进行转换只会告诉编译器您知道对象的sape将与您要转换的类相同。
你的问题是我不认为你在那里提供的json字符串符合你所投射的类型,它似乎有以下形状{ entry:fhir.BundleEntry[] }
(假设条目中的元素具有相同的形状为fhir.BundleEntry
。所以你应该像这样的猫:
const outputData = <{ entry:fhir.BundleEntry[] }> JSON.parse('{ .. }')