Skip to content

DotenvPopulateInput not compatible with NodeJS.ProcessEnv #767

@mak3

Description

@mak3

Seems that populate method just never worked in Typescript.
process.env may contain an undefined value in dict, making it unassignable.

import dotenv = require('dotenv')

const parsed = { HELLO: 'world' }
dotenv.populate(process.env, parsed)

Argument of type 'ProcessEnv' is not assignable to parameter of type 'DotenvPopulateInput'.
'string' index signatures are incompatible.
Type 'string | undefined' is not assignable to type 'string'.
Type 'undefined' is not assignable to type 'string'.ts(2345)

dotenv type:
https://github.com/motdotla/dotenv/blob/cf4c56957974efb7238ecaba6f16e0afa895c194/lib/main.d.ts#L107C1-L109C2

node.js built-in type:

interface ProcessEnv extends Dict<string> {}

interface Dict<T> {
    [key: string]: T | undefined;
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions