TypeScript - React上下文不适用于新的PropTypes包

Nar*_*esh 1 typescript reactjs react-proptypes

以下使用的代码React.PropTypes工作正常,但它会产生预期的警告(不推荐通过主React包访​​问PropTypes):

import * as React from 'react';

export class BackButton extends React.Component<{}, {}> {
    static contextTypes = {
        router: React.PropTypes.object
    };

    render() {
        return (
            <button onClick={this.goBack}>Back</button>
        );
    }

    goBack = () => {
        this.context.router.history.goBack();
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我现在React.PropTypes用新PropTypes包替换,我得到一个TypeError:"无法读取未定义的属性'对象':

import * as React from 'react';
import PropTypes from 'prop-types';

export class BackButton extends React.Component<{}, {}> {
    static contextTypes = {
        router: PropTypes.object
    };

    render() {
        return (
            <button onClick={this.goBack}>Back</button>
        );
    }

    goBack = () => {
        this.context.router.history.goBack();
    }
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

QoP*_*QoP 10

这不是prop-types使用TypeScript 导入的正确方法.

你必须使用

import * as PropTypes from 'prop-types';

代替

import PropTypes from 'prop-types';

webpackbin