对于编码来说还是很新的东西,尤其是在Vue中,我想知道Vue / Typescript中有什么合理的方法可以根据上下文声明不存在的值。
预想:
undefined
-否则响应显然会中断typeA | null
user-settings.ts
// For each new user a new object of type `UserSettings` is created, e.g. in the cloud in `onAuthCreate`
// option A
export interface UserSettings {
analyticsEnabled: boolean
personalDataRequestedAt?: number
personalDataDownloadLink?: string
userId: string
}
// option B
export interface UserSettings {
analyticsEnabled: boolean
personalDataRequestedAt: number | null
personalDataDownloadLink: string | null
userId: string
}
// option C
export interface UserSettings {
analyticsEnabled: boolean
personalDataRequestedAt: number // starting with 0
personalDataDownloadLink: string // starting with ''
userId: string
}
undefined
的所有null
属性重新填充到const data = "Item 1 10 200"
const implemented = data.split(/\t/)
console.log(implemented)
,然后再将它们传输到我的组件中,以保护模板绑定(或者还有其他方式/我错过了吗?)< / li>
我想知道最“像vue一样”的方法与打字稿和一般的编码习惯配合得很好。
答案 0 :(得分:1)
C感觉更像是UI组件中用于设置默认值的
C不可能。再次供您参考:
export interface UserSettings {
analyticsEnabled: false
personalDataRequestedAt: 0
personalDataDownloadLink: ''
userId: string
}
在这里,您说的是analyticsEnabled
总是为假。 不与说其默认值相同。
在使用B的情况下,我几乎可以在接口中的任何位置进行这种声明-但感觉很明确
我更喜欢B。显性好,显性是正确