javascript - 无法在 javascript 中“转换”打字稿定义
问题描述
我正在尝试将此 Apollo 打字稿存储库重写为 javascript。我尝试学习打字稿,但有一件事叫做“类型转换”或“类型断言”,这让我感到困惑。
让我用代码解释一下:
//cache.tsx
import { InMemoryCache, ReactiveVar, makeVar } from "@apollo/client";
import { Todos } from "./models/Todos";
import { VisibilityFilter, VisibilityFilters } from "./models/VisibilityFilter";
export const cache...{
...
...
}
export const todosVar: ReactiveVar<Todos> = makeVar<Todos>( //how i can 'convert' this type caster value to vanilla js?
todosInitialValue
);
export const visibilityFilterVar = makeVar<VisibilityFilter>( //how i can 'convert' this type caster value to vanilla js?
VisibilityFilters.SHOW_ALL
)
此 cache.tsx 使用的其他 2 个文件是:
//todos.tsx
export interface Todo {
text: string;
completed: boolean;
id: number
}
export type Todos = Todo[];
和
VisibilityFilter.tsx
export type VisibilityFilter = {
id: string;
displayName: string;
}
export const VisibilityFilters: { [filter: string]: VisibilityFilter } = {
SHOW_ALL: {
id: "show_all",
displayName: "All"
},
SHOW_COMPLETED: {
id: "show_completed",
displayName: "Completed"
},
SHOW_ACTIVE: {
id: "show_active",
displayName: "Active"
}
}
在这种情况下如何避免打字稿类型检查,更重要的是,如何正确使用 ReactiveVar 和 makeVar 导入?
解决方案
只需像这样删除泛型:
从:
makeVar<Todos>(
到:
makeVar(
改变这个:
export const todosVar: ReactiveVar<Todos> = makeVar<Todos>( //how i can 'convert' this type caster value to vanilla js?
todosInitialValue
);
export const visibilityFilterVar = makeVar<VisibilityFilter>( //how i can 'convert' this type caster value to vanilla js?
VisibilityFilters.SHOW_ALL
)
对此:
export const todosVar = makeVar(todosInitialValue);
export const visibilityFilterVar = makeVar(VisibilityFilters.SHOW_ALL);
如何避免打字稿检查 - 将扩展名从 .ts 和 .tsx 分别替换为 .js 和 .jsx。
推荐阅读
- git - 清理后:git commit -m 使用单引号 - windows git-cmd.exe 和 vim 上的错误路径规范
- c# - AppSettings.config - 将字符串拆分到列表中
- regex - JMeter如何使用正则表达式提取器从响应中的项目数组中提取ID
- c# - 将传递给参数的日期时间转换为字符串c#
- r - 没有安装 R 的人可以成功运行 R Notebook 文件吗?
- javascript - 此表单不安全自动填充已仅在 chrome 中关闭
- azure - 如何从 azure 获取 AzServiceBusKey
- python - 访问 odeint 中的早期值
- for-loop - 排除 FOR 循环中的字符
- c# - TLS 启用 dgraph 服务器使用 c# StatusCode=Unavailable, Detail="Empty update" grpc 异常