我想要外化一些字符串,但仍然使用某种形式的字符串替换。
在我使用的一些var format = require('string-format');
format(Constants.COUNTRY_WEATHER_ENDPOINT, {
country: country
})
项目中:
Typescript
然而在Cannot find name 'country'.at line 18 col 66 in repo/src/app/constants.ts
中,我一直在尝试这样的事情......
错误:
Constants.ts
export class Constants {
public static COUNTRY_WEATHER_ENDPOINT = `/api/country/${country}/weather`;
}
TestService.ts
import { Constants } from './constants';
export class TestService {
constructor(private $http) { }
public getWeather(country) {
let url = Constants.COUNTRY_WEATHER_ENDPOINT;
return this.$http.get(
url,
.then(response => response);
}
}
TestService.$inject = ['$http'];
abstract <S> Seek<S> seek(S... o);
答案 0 :(得分:1)
使用箭头功能:
export const Constants: { readonly [name: string]: (key: string) => string } = {
countryWeatherEndpoint: country => `/api/country/${country}/weather`
}
然后做:
import { Constants } from "./constants";
// ...
const url = Constants.countryWeatherEndpoint(country);
// use your url
答案 1 :(得分:0)
在加载类时,Typescript中的字符串插值需要您的变量country
。如果您想稍后格式化常量字符串,则必须使用常规引号(单引号或双引号)并在服务中调用format
。