Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 类型';上不存在typescript;对象类型_Node.js_Typescript - Fatal编程技术网

Node.js 类型';上不存在typescript;对象类型

Node.js 类型';上不存在typescript;对象类型,node.js,typescript,Node.js,Typescript,我最近刚开始打字 我正在将javascript代码移动到typescript。在我的JS代码中,我有这样的东西 export const envVar = { SOCIAL_URL: false, BASE_CONFIG_URL: '', //we change it based on the request BASE_CONFIG_CLIENT_WEB_URL: base_config.client_url || 'http://localhost:3000',

我最近刚开始打字

我正在将javascript代码移动到typescript。在我的JS代码中,我有这样的东西

export const envVar = {
    SOCIAL_URL: false,
    BASE_CONFIG_URL: '', //we change it based on the request
    BASE_CONFIG_CLIENT_WEB_URL: base_config.client_url || 'http://localhost:3000',
    DB_HOST: db_settings.db_host || 'localhost',
    DB_USER: db_settings.db_user || 'root',
    APP_URL: base_config.app_url || 'blle://',
    DB_PASSWORD: db_settings.db_password || '',
    DB_DATABASE: db_settings.db_database || 'blale',
    DB_CONNECTION_NAME: db_settings.connection_name || '',
    FIREBASE_DATABASE_URL: db_settings.firebase_datbase_url,
    FACEBOOK_APP_ID: facebook.app_id || '',
    FACEBOOK_APP_SECRET: facebook.app_secret || '',
    FACEBOOK_REDIRECT_URL_SOCIAL: facebook.redirect_url_social || '',
    FACEBOOK_REDIRECT_URL_AUTH: facebook.redirect_url_auth || '',
    FACEBOOK_REDIRECT_URL: function() {
        return this.SOCIAL_URL ? this.FACEBOOK_REDIRECT_URL_SOCIAL : this.FACEBOOK_REDIRECT_URL_AUTH
    },
    TWITTER_CONSUMER_KEY: twitter.api_key || '',
    TWITTER_REDIRECT_URL_AUTH: twitter.redirect_url_auth || '',
    TWITTER_REDIRECT_URL_SOCIAL: twitter.redirect_url_social || '',
    TWITTER_APP_SECRET: twitter.app_secret_key || '',
    TWITTER_REDIRECT_URL: function() {
        return this.SOCIAL_URL ? this.TWITTER_REDIRECT_URL_SOCIAL : this.TWITTER_REDIRECT_URL_AUTH
    },
    JWT_SESSION_DURATION: jwt_config.session_duration || '7d',
    JWT_ISSUER: jwt_config.issuer || 'blle',
    JWT_SECRET: jwt_config.secret || '933dnz82'
}
import * as envVar  from "./../config"

const { JWT_SECRET, JWT_ISSUER, JWT_SESSION_DURATION } = envVar
将其从
模块导出
移动到
导出常量
。现在,如何使用另一个.ts文件?我最初是这样做的

export const envVar = {
    SOCIAL_URL: false,
    BASE_CONFIG_URL: '', //we change it based on the request
    BASE_CONFIG_CLIENT_WEB_URL: base_config.client_url || 'http://localhost:3000',
    DB_HOST: db_settings.db_host || 'localhost',
    DB_USER: db_settings.db_user || 'root',
    APP_URL: base_config.app_url || 'blle://',
    DB_PASSWORD: db_settings.db_password || '',
    DB_DATABASE: db_settings.db_database || 'blale',
    DB_CONNECTION_NAME: db_settings.connection_name || '',
    FIREBASE_DATABASE_URL: db_settings.firebase_datbase_url,
    FACEBOOK_APP_ID: facebook.app_id || '',
    FACEBOOK_APP_SECRET: facebook.app_secret || '',
    FACEBOOK_REDIRECT_URL_SOCIAL: facebook.redirect_url_social || '',
    FACEBOOK_REDIRECT_URL_AUTH: facebook.redirect_url_auth || '',
    FACEBOOK_REDIRECT_URL: function() {
        return this.SOCIAL_URL ? this.FACEBOOK_REDIRECT_URL_SOCIAL : this.FACEBOOK_REDIRECT_URL_AUTH
    },
    TWITTER_CONSUMER_KEY: twitter.api_key || '',
    TWITTER_REDIRECT_URL_AUTH: twitter.redirect_url_auth || '',
    TWITTER_REDIRECT_URL_SOCIAL: twitter.redirect_url_social || '',
    TWITTER_APP_SECRET: twitter.app_secret_key || '',
    TWITTER_REDIRECT_URL: function() {
        return this.SOCIAL_URL ? this.TWITTER_REDIRECT_URL_SOCIAL : this.TWITTER_REDIRECT_URL_AUTH
    },
    JWT_SESSION_DURATION: jwt_config.session_duration || '7d',
    JWT_ISSUER: jwt_config.issuer || 'blle',
    JWT_SECRET: jwt_config.secret || '933dnz82'
}
import * as envVar  from "./../config"

const { JWT_SECRET, JWT_ISSUER, JWT_SESSION_DURATION } = envVar
但这是下面的错误

类型“typeof”上不存在属性“JWT\u会话\u持续时间”


然后你可以在另一个像这样的文件中使用它。请注意,这是实现此目的的多种方法之一

//MyCode.ts
import { GlobalConfig } from "./GlobalConfig";

export class SomeComponent {
    current_jwt = "";

    constructor() {
        // some init code
        this.current_jwt = GlobalConfig.JWT_SESSION_DURATION.myValue;
    }

    ngOnInit() {
        // something
        console.log(this.current_jwt);
        console.log(GlobalConfig.JWT_SECRET);
    }

}

由于您正在执行命名导出,因此导入将接收一个对象,其中包含
envVar
,作为属性之一

因此,您可以执行以下操作

import { envVar }  from "./../config"

如果要使用现有导入,则必须将命名导出更改为默认导出

const envVar = {....};
export default envVar;

我在常量列表中没有看到
JWT\u SESSION\u DURATION
。@AnirudhBagri在envVar对象中的倒数第三名为什么我们在typescript中使用
namespace
?命名空间就像Java中的包,或者只是完全限定类的替代品。因此,在导入全局变量时,不必创建任何对象的实例。您还可以根据使用、类型等分离变量,通过为每个域创建多个名称空间来确保安全性和交叉关注点。