我通常将一些服务器端变量放入全局范围,以便我可以从客户端 TypeScript 代码中的任何位置访问它们,例如:
.cshtml 中的服务器:
<script>
const RazorGlobals = {
apiBaseUrl: '@Model.ApiBaseUrl'
}
</script>
Run Code Online (Sandbox Code Playgroud)
客户端代码:
declare const RazorGlobals: {
apiBaseUrl: string
}
fetch(RazorGlobals.apiBaseUrl + '/myResource').then(doStuff)
Run Code Online (Sandbox Code Playgroud)
目前,我必须在declare const RazorGlobals...需要使用它的每个文件顶部重复该部分。我正在寻找一种在单个位置定义此声明的方法,例如以下伪代码:
全局.d.ts:
export declare const RazorGlobals: {
apiBaseUrl: string
}
Run Code Online (Sandbox Code Playgroud)
文件1.ts:
import './globals'
fetch(RazorGlobals.apiBaseUrl + '/myResource').then(doStuff)
Run Code Online (Sandbox Code Playgroud)
文件2.ts:
import './globals'
fetch(RazorGlobals.apiBaseUrl + '/myOtherResource').then(doOtherStuff)
Run Code Online (Sandbox Code Playgroud)
有没有办法实现这样的目标?
如果您想声明存在一个在任何地方都可用的全局变量,您只需拥有一个包含声明的 .d.ts 文件即可。
// globals.d.ts
declare const RazorGlobals: {
apiBaseUrl: string
}
Run Code Online (Sandbox Code Playgroud)
不需要进口。
| 归档时间: |
|
| 查看次数: |
4601 次 |
| 最近记录: |