外化字符串并使用格式化程序将变量替换为字符串

时间:2017-07-10 20:34:05

标签: string typescript string-formatting external

我想要外化一些字符串,但仍然使用某种形式的字符串替换。

在我使用的一些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);

2 个答案:

答案 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